﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace devtm.Aop.Convert
{


    public interface IInterceptorContainer
    {
       

        void WriteMethodInterceptCall(Emit.TryFinallyCilWorker Try, Emit.EmitVariableReferenceExpression Arg, Mono.Cecil.MethodReference methodAddProperty, Mono.Cecil.TypeDefinition _Interceptor);       
        void WriteMethodBeforeCall(Emit.CilWorker gen, Emit.EmitVariableReferenceExpression Arg, Mono.Cecil.MethodReference methodAddProperty, Mono.Cecil.TypeDefinition _Interceptor);
        void WriteMethodAfterCall(Emit.TryFinallyCilWorker Try, Emit.EmitVariableReferenceExpression Arg, Mono.Cecil.MethodReference methodAddProperty, Mono.Cecil.TypeDefinition _Interceptor);
        void WriteMethodCatchCall(Emit.TryCatchCilWorker Catch, Emit.EmitVariableReferenceExpression Arg, Mono.Cecil.MethodReference methodAddProperty, Mono.Cecil.TypeDefinition _Interceptor);


        bool ContainsCatch { get; set; }
        bool ContainsIntercept { get; set; }
        bool ContainsEntry { get; set; }

    }
}
